	.arch armv8-a
	.arch_extension crc
	.arm
	.data
	.global last_char
	.align 4
	.size last_char, 4
last_char:
	.word 32
	.global num
	.align 4
	.size num, 4
num:
	.word 0
	.global other
	.align 4
	.size other, 4
other:
	.word 0
	.global cur_token
	.align 4
	.size cur_token, 4
cur_token:
	.word 0
	.section .rodata
	.global TOKEN_NUM
	.align 4
	.size TOKEN_NUM, 4
TOKEN_NUM:
	.word 0
	.global TOKEN_OTHER
	.align 4
	.size TOKEN_OTHER, 4
TOKEN_OTHER:
	.word 1
	.text
	.global next_char
	.type next_char , %function
next_char:
	push {r4, r5, r9, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #0
.L198:
	bl getch
	mov r10, r0
	ldr r9, addr_last_char0
	str r10, [r9]
	ldr r4, addr_last_char0
	ldr r5, [r4]
	mov r0, r5
	add sp, sp, #0
	pop {r4, r5, r9, r10, fp, lr}
	bx lr

	.global is_space
	.type is_space , %function
is_space:
	push {r4, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #4
.L199:
	str r0, [fp, #-4]
	ldr r10, [fp, #-4]
	cmp r10, #0
	cmp r10, #32
	beq .L201
	b .L211
.L201:
	mov r0, #1
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
	b .L202
.L202:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
.L203:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
	b .L202
.L204:
	ldr r4, [fp, #-4]
	cmp r4, #0
	cmp r4, #10
	beq .L201
	b .L218
.L206:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
.L207:
	b .L206
.L211:
	b .L204
.L213:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
.L214:
	b .L213
.L218:
	b .L203

	.global is_num
	.type is_num , %function
is_num:
	push {r4, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #4
.L219:
	str r0, [fp, #-4]
	ldr r10, [fp, #-4]
	cmp r10, #0
	cmp r10, #48
	movge r4, #1
	movle r4, #0
	bge .L224
	b .L231
.L221:
	mov r0, #1
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
	b .L222
.L222:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
.L223:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
	b .L222
.L224:
	ldr r4, [fp, #-4]
	cmp r4, #0
	cmp r4, #57
	movle r4, #1
	movge r4, #0
	ble .L221
	b .L238
.L226:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
.L227:
	b .L226
.L231:
	b .L223
.L233:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
.L234:
	b .L233
.L238:
	b .L223

	.global next_token
	.type next_token , %function
next_token:
	push {r4, r5, r6, r9, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #0
.L239:
	b .L240
.L240:
	ldr r10, addr_last_char0
	ldr r9, [r10]
	cmp r9, #0
	mov r0, r9
	bl is_space
	mov r4, r0
	cmp r4, #0
	bne .L241
	b .L249
.L241:
	bl next_char
	mov r4, r0
	b .L240
.L242:
	ldr r4, addr_last_char0
	ldr r5, [r4]
	cmp r5, #0
	mov r0, r5
	bl is_num
	mov r4, r0
	cmp r4, #0
	bne .L251
	b .L260
.L244:
	mov r0, #0
	add sp, sp, #0
	pop {r4, r5, r6, r9, r10, fp, lr}
	bx lr
.L245:
	b .L244
.L249:
	b .L242
.L251:
	ldr r4, addr_last_char0
	ldr r5, [r4]
	ldr r4, =48
	sub r6, r5, r4
	ldr r4, addr_num0
	str r6, [r4]
	b .L262
.L252:
	ldr r4, addr_cur_token0
	ldr r5, [r4]
	mov r0, r5
	add sp, sp, #0
	pop {r4, r5, r6, r9, r10, fp, lr}
	bx lr
.L253:
	ldr r4, addr_last_char0
	ldr r5, [r4]
	ldr r4, addr_other0
	str r5, [r4]
	bl next_char
	mov r4, r0
	ldr r4, addr_TOKEN_OTHER0
	ldr r5, [r4]
	ldr r4, addr_cur_token0
	str r5, [r4]
	b .L252
.L255:
	mov r0, #0
	add sp, sp, #0
	pop {r4, r5, r6, r9, r10, fp, lr}
	bx lr
.L256:
	b .L255
.L260:
	b .L253
.L262:
	bl next_char
	mov r4, r0
	cmp r4, #0
	mov r0, r4
	bl is_num
	mov r4, r0
	cmp r4, #0
	bne .L263
	b .L271
.L263:
	ldr r4, addr_num0
	ldr r5, [r4]
	ldr r4, =10
	mul r6, r5, r4
	ldr r4, addr_last_char0
	ldr r5, [r4]
	add r4, r6, r5
	ldr r5, =48
	sub r6, r4, r5
	ldr r4, addr_num0
	str r6, [r4]
	b .L262
.L264:
	ldr r4, addr_TOKEN_NUM0
	ldr r5, [r4]
	ldr r4, addr_cur_token0
	str r5, [r4]
	b .L252
.L266:
	mov r0, #0
	add sp, sp, #0
	pop {r4, r5, r6, r9, r10, fp, lr}
	bx lr
.L267:
	b .L266
.L271:
	b .L264

	.global panic
	.type panic , %function
panic:
	push {r8, r9, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #0
.L273:
	mov r0, #112
	bl putch
	mov r0, #97
	bl putch
	mov r0, #110
	bl putch
	mov r0, #105
	bl putch
	mov r0, #99
	bl putch
	mov r0, #33
	bl putch
	mov r0, #10
	bl putch
	ldr r10, =0
	ldr r9, =1
	sub r8, r10, r9
	mov r0, r8
	add sp, sp, #0
	pop {r8, r9, r10, fp, lr}
	bx lr

	.global get_op_prec
	.type get_op_prec , %function
get_op_prec:
	push {r4, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #4
.L274:
	str r0, [fp, #-4]
	ldr r10, [fp, #-4]
	cmp r10, #0
	cmp r10, #43
	beq .L276
	b .L285
.L276:
	mov r0, #10
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
	b .L277
.L277:
	ldr r4, [fp, #-4]
	cmp r4, #0
	cmp r4, #42
	beq .L293
	b .L303
.L278:
	ldr r4, [fp, #-4]
	cmp r4, #0
	cmp r4, #45
	beq .L276
	b .L292
.L280:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
.L281:
	b .L280
.L285:
	b .L278
.L287:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
.L288:
	b .L287
.L292:
	b .L277
.L293:
	mov r0, #20
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
	b .L294
.L294:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
.L295:
	ldr r4, [fp, #-4]
	cmp r4, #0
	cmp r4, #37
	beq .L293
	b .L317
.L296:
	ldr r4, [fp, #-4]
	cmp r4, #0
	cmp r4, #47
	beq .L293
	b .L310
.L298:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
.L299:
	b .L298
.L303:
	b .L296
.L305:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
.L306:
	b .L305
.L310:
	b .L295
.L312:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r10, fp, lr}
	bx lr
.L313:
	b .L312
.L317:
	b .L294

	.global stack_push
	.type stack_push , %function
stack_push:
	push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #8
.L318:
	str r0, [fp, #-8]
	str r1, [fp, #-4]
	ldr r10, [fp, #-8]
	mov r9, #0
	mov r7, #4
	mul r8, r9, r7
	add r4, r10, r8
	ldr r5, [r4]
	ldr r4, =1
	add r6, r5, r4
	ldr r4, [fp, #-8]
	mov r5, #0
	mov r8, #4
	mul r7, r5, r8
	add r5, r4, r7
	str r6, [r5]
	ldr r4, [fp, #-4]
	ldr r5, [fp, #-8]
	ldr r6, [fp, #-8]
	mov r7, #0
	mov r8, #4
	mul r9, r7, r8
	add r7, r6, r9
	ldr r6, [r7]
	mov r7, #4
	mul r8, r6, r7
	add r6, r5, r8
	str r4, [r6]
	add sp, sp, #8
	pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	bx lr

	.global stack_pop
	.type stack_pop , %function
stack_pop:
	push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #8
.L327:
	str r0, [fp, #-8]
	ldr r10, [fp, #-8]
	ldr r9, [fp, #-8]
	mov r8, #0
	mov r7, #4
	mul r6, r8, r7
	add r4, r9, r6
	ldr r5, [r4]
	mov r4, #4
	mul r6, r5, r4
	add r4, r10, r6
	ldr r5, [r4]
	str r5, [fp, #-4]
	ldr r4, [fp, #-8]
	mov r5, #0
	mov r6, #4
	mul r7, r5, r6
	add r5, r4, r7
	ldr r4, [r5]
	ldr r5, =1
	sub r6, r4, r5
	ldr r4, [fp, #-8]
	mov r5, #0
	mov r7, #4
	mul r8, r5, r7
	add r5, r4, r8
	str r6, [r5]
	ldr r4, [fp, #-4]
	mov r0, r4
	add sp, sp, #8
	pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	bx lr

	.global stack_peek
	.type stack_peek , %function
stack_peek:
	push {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #4
.L337:
	str r0, [fp, #-4]
	ldr r10, [fp, #-4]
	ldr r9, [fp, #-4]
	mov r8, #0
	mov r7, #4
	mul r6, r8, r7
	add r4, r9, r6
	ldr r5, [r4]
	mov r4, #4
	mul r6, r5, r4
	add r4, r10, r6
	ldr r5, [r4]
	mov r0, r5
	add sp, sp, #4
	pop {r4, r5, r6, r7, r8, r9, r10, fp, lr}
	bx lr

	.global stack_size
	.type stack_size , %function
stack_size:
	push {r4, r5, r7, r8, r9, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #4
.L343:
	str r0, [fp, #-4]
	ldr r10, [fp, #-4]
	mov r9, #0
	mov r8, #4
	mul r7, r9, r8
	add r4, r10, r7
	ldr r5, [r4]
	mov r0, r5
	add sp, sp, #4
	pop {r4, r5, r7, r8, r9, r10, fp, lr}
	bx lr

	.global eval_op
	.type eval_op , %function
eval_op:
	push {r4, r5, r6, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #12
.L347:
	str r0, [fp, #-12]
	str r1, [fp, #-8]
	str r2, [fp, #-4]
	ldr r10, [fp, #-12]
	cmp r10, #0
	cmp r10, #43
	beq .L351
	b .L359
.L351:
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-4]
	add r6, r4, r5
	mov r0, r6
	add sp, sp, #12
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
	b .L352
.L352:
	ldr r4, [fp, #-12]
	cmp r4, #0
	cmp r4, #45
	beq .L360
	b .L368
.L354:
	mov r0, #0
	add sp, sp, #12
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
.L355:
	b .L354
.L359:
	b .L352
.L360:
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-4]
	sub r6, r4, r5
	mov r0, r6
	add sp, sp, #12
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
	b .L361
.L361:
	ldr r4, [fp, #-12]
	cmp r4, #0
	cmp r4, #42
	beq .L369
	b .L377
.L363:
	mov r0, #0
	add sp, sp, #12
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
.L364:
	b .L363
.L368:
	b .L361
.L369:
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-4]
	mul r6, r4, r5
	mov r0, r6
	add sp, sp, #12
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
	b .L370
.L370:
	ldr r4, [fp, #-12]
	cmp r4, #0
	cmp r4, #47
	beq .L378
	b .L386
.L372:
	mov r0, #0
	add sp, sp, #12
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
.L373:
	b .L372
.L377:
	b .L370
.L378:
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-4]
	sdiv r6, r4, r5
	mov r0, r6
	add sp, sp, #12
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
	b .L379
.L379:
	ldr r4, [fp, #-12]
	cmp r4, #0
	cmp r4, #37
	beq .L387
	b .L395
.L381:
	mov r0, #0
	add sp, sp, #12
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
.L382:
	b .L381
.L386:
	b .L379
.L387:
	ldr r4, [fp, #-8]
	ldr r5, [fp, #-4]
	sdiv r6, r4, r5
	mul r5, r6, r5
	sub r6, r4, r5
	mov r0, r6
	add sp, sp, #12
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
	b .L388
.L388:
	mov r0, #0
	add sp, sp, #12
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
.L390:
	mov r0, #0
	add sp, sp, #12
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
.L391:
	b .L390
.L395:
	b .L388

	.global eval
	.type eval , %function
eval:
	push {r4, r5, r6, r7, r9, r10, fp, lr}
	mov fp, sp
	ldr r4, =2076
	sub sp, sp, r4
.L396:
	ldr r10, =0
	ldr r9, =-2076
	str r10, [fp, r9]
	ldr r4, =0
	ldr r5, =-1052
	str r4, [fp, r5]
	ldr r4, addr_cur_token0
	ldr r5, [r4]
	cmp r5, #0
	ldr r4, addr_TOKEN_NUM0
	ldr r6, [r4]
	cmp r6, #0
	cmp r5, r6
	bne .L399
	b .L411
.L399:
	bl panic
	mov r4, r0
	mov r0, r4
	ldr r1, =2076
	add sp, sp, r1
	pop {r4, r5, r6, r7, r9, r10, fp, lr}
	bx lr
	b .L400
.L400:
	mov r4, #0
	ldr r5, =-2076
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	add r5, fp, r4
	ldr r4, addr_num0
	ldr r6, [r4]
	mov r0, r5
	mov r1, r6
	bl stack_push
	bl next_token
	mov r4, r0
	b .L412
.L402:
	mov r0, #0
	ldr r1, =2076
	add sp, sp, r1
	pop {r4, r5, r6, r7, r9, r10, fp, lr}
	bx lr
.L403:
	b .L402
.L406:
	mov r0, #0
	ldr r1, =2076
	add sp, sp, r1
	pop {r4, r5, r6, r7, r9, r10, fp, lr}
	bx lr
.L407:
	b .L406
.L411:
	b .L400
.L412:
	ldr r4, addr_cur_token0
	ldr r5, [r4]
	cmp r5, #0
	ldr r4, addr_TOKEN_OTHER0
	ldr r6, [r4]
	cmp r6, #0
	cmp r5, r6
	beq .L413
	b .L425
.L413:
	ldr r4, addr_other0
	ldr r5, [r4]
	str r5, [fp, #-28]
	ldr r4, [fp, #-28]
	cmp r4, #0
	mov r0, r4
	bl get_op_prec
	mov r4, r0
	cmp r4, #0
	cmp r4, #0
	moveq r4, #1
	movne r4, #0
	cmp r4, #0
	bne .L427
	b .L440
.L414:
	bl next_token
	mov r4, r0
	b .L490
.L416:
	mov r0, #0
	ldr r1, =2076
	add sp, sp, r1
	pop {r4, r5, r6, r7, r9, r10, fp, lr}
	bx lr
.L417:
	b .L416
.L420:
	mov r0, #0
	ldr r1, =2076
	add sp, sp, r1
	pop {r4, r5, r6, r7, r9, r10, fp, lr}
	bx lr
.L421:
	b .L420
.L425:
	b .L414
.L427:
	b .L414
.L428:
	bl next_token
	mov r4, r0
	b .L443
.L430:
	mov r0, #0
	ldr r1, =2076
	add sp, sp, r1
	pop {r4, r5, r6, r7, r9, r10, fp, lr}
	bx lr
.L431:
	b .L430
.L434:
	mov r0, #0
	ldr r1, =2076
	add sp, sp, r1
	pop {r4, r5, r6, r7, r9, r10, fp, lr}
	bx lr
.L435:
	b .L434
.L440:
	b .L428
.L442:
	b .L428
.L443:
	mov r4, #0
	ldr r5, =-1052
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	add r5, fp, r4
	mov r0, r5
	bl stack_size
	mov r4, r0
	cmp r4, #0
	cmp r4, #0
	bne .L446
	b .L453
.L444:
	mov r4, #0
	ldr r5, =-1052
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	add r5, fp, r4
	mov r0, r5
	bl stack_pop
	mov r4, r0
	str r4, [fp, #-24]
	mov r4, #0
	ldr r5, =-2076
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	add r5, fp, r4
	mov r0, r5
	bl stack_pop
	mov r4, r0
	str r4, [fp, #-20]
	mov r4, #0
	ldr r5, =-2076
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	add r5, fp, r4
	mov r0, r5
	bl stack_pop
	mov r4, r0
	str r4, [fp, #-16]
	mov r4, #0
	ldr r5, =-2076
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	add r5, fp, r4
	ldr r4, [fp, #-24]
	ldr r6, [fp, #-16]
	ldr r7, [fp, #-20]
	mov r0, r4
	mov r1, r6
	mov r2, r7
	bl eval_op
	mov r4, r0
	mov r0, r5
	mov r1, r4
	bl stack_push
	b .L443
.L445:
	mov r4, #0
	ldr r5, =-1052
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	add r5, fp, r4
	ldr r4, [fp, #-28]
	mov r0, r5
	mov r1, r4
	bl stack_push
	ldr r4, addr_cur_token0
	ldr r5, [r4]
	cmp r5, #0
	ldr r4, addr_TOKEN_NUM0
	ldr r6, [r4]
	cmp r6, #0
	cmp r5, r6
	bne .L477
	b .L489
	b .F0
.LTORG
addr_TOKEN_NUM0:
	.word TOKEN_NUM
addr_TOKEN_OTHER0:
	.word TOKEN_OTHER
addr_last_char0:
	.word last_char
addr_num0:
	.word num
addr_other0:
	.word other
addr_cur_token0:
	.word cur_token
.F0:
.L446:
	mov r4, #0
	ldr r5, =-1052
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	add r5, fp, r4
	mov r0, r5
	bl stack_peek
	mov r4, r0
	cmp r4, #0
	mov r0, r4
	bl get_op_prec
	mov r4, r0
	cmp r4, #0
	ldr r5, [fp, #-28]
	cmp r5, #0
	mov r0, r5
	bl get_op_prec
	mov r5, r0
	cmp r5, #0
	cmp r4, r5
	movge r4, #1
	movle r4, #0
	bge .L444
	b .L473
.L449:
	b .L445
.L453:
	b .L445
.L456:
	mov r0, #0
	ldr r1, =2076
	add sp, sp, r1
	pop {r4, r5, r6, r7, r9, r10, fp, lr}
	bx lr
.L457:
	b .L456
.L460:
	mov r0, #0
	ldr r1, =2076
	add sp, sp, r1
	pop {r4, r5, r6, r7, r9, r10, fp, lr}
	bx lr
.L461:
	b .L460
.L464:
	mov r0, #0
	ldr r1, =2076
	add sp, sp, r1
	pop {r4, r5, r6, r7, r9, r10, fp, lr}
	bx lr
.L465:
	b .L464
.L468:
	mov r0, #0
	ldr r1, =2076
	add sp, sp, r1
	pop {r4, r5, r6, r7, r9, r10, fp, lr}
	bx lr
.L469:
	b .L468
.L473:
	b .L445
.L477:
	bl panic
	mov r4, r0
	mov r0, r4
	ldr r1, =2076
	add sp, sp, r1
	pop {r4, r5, r6, r7, r9, r10, fp, lr}
	bx lr
	b .L478
.L478:
	mov r4, #0
	ldr r5, =-2076
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	add r5, fp, r4
	ldr r4, addr_num1
	ldr r6, [r4]
	mov r0, r5
	mov r1, r6
	bl stack_push
	bl next_token
	mov r4, r0
	b .L412
.L480:
	mov r0, #0
	ldr r1, =2076
	add sp, sp, r1
	pop {r4, r5, r6, r7, r9, r10, fp, lr}
	bx lr
.L481:
	b .L480
.L484:
	mov r0, #0
	ldr r1, =2076
	add sp, sp, r1
	pop {r4, r5, r6, r7, r9, r10, fp, lr}
	bx lr
.L485:
	b .L484
.L489:
	b .L478
.L490:
	mov r4, #0
	ldr r5, =-1052
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	add r5, fp, r4
	mov r0, r5
	bl stack_size
	mov r4, r0
	cmp r4, #0
	bne .L491
	b .L495
.L491:
	mov r4, #0
	ldr r5, =-1052
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	add r5, fp, r4
	mov r0, r5
	bl stack_pop
	mov r4, r0
	str r4, [fp, #-12]
	mov r4, #0
	ldr r5, =-2076
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	add r5, fp, r4
	mov r0, r5
	bl stack_pop
	mov r4, r0
	str r4, [fp, #-8]
	mov r4, #0
	ldr r5, =-2076
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	add r5, fp, r4
	mov r0, r5
	bl stack_pop
	mov r4, r0
	str r4, [fp, #-4]
	mov r4, #0
	ldr r5, =-2076
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	add r5, fp, r4
	ldr r4, [fp, #-12]
	ldr r6, [fp, #-4]
	ldr r7, [fp, #-8]
	mov r0, r4
	mov r1, r6
	mov r2, r7
	bl eval_op
	mov r4, r0
	mov r0, r5
	mov r1, r4
	bl stack_push
	b .L490
.L492:
	mov r4, #0
	ldr r5, =-2076
	mov r6, #4
	mul r7, r4, r6
	add r4, r5, r7
	add r5, fp, r4
	mov r0, r5
	bl stack_peek
	mov r4, r0
	mov r0, r4
	ldr r1, =2076
	add sp, sp, r1
	pop {r4, r5, r6, r7, r9, r10, fp, lr}
	bx lr
.L495:
	b .L492

	.global main
	.type main , %function
main:
	push {r4, r5, r6, r10, fp, lr}
	mov fp, sp
	sub sp, sp, #4
.L500:
	bl getint
	mov r10, r0
	str r10, [fp, #-4]
	bl getch
	mov r4, r0
	bl next_token
	mov r4, r0
	b .L502
.L502:
	ldr r4, [fp, #-4]
	cmp r4, #0
	bne .L503
	b .L507
.L503:
	bl eval
	mov r4, r0
	mov r0, r4
	bl putint
	mov r0, #10
	bl putch
	ldr r4, [fp, #-4]
	ldr r5, =1
	sub r6, r4, r5
	str r6, [fp, #-4]
	b .L502
.L504:
	mov r0, #0
	add sp, sp, #4
	pop {r4, r5, r6, r10, fp, lr}
	bx lr
.L507:
	b .L504

addr_TOKEN_NUM1:
	.word TOKEN_NUM
addr_TOKEN_OTHER1:
	.word TOKEN_OTHER
addr_last_char1:
	.word last_char
addr_num1:
	.word num
addr_other1:
	.word other
addr_cur_token1:
	.word cur_token
